#ifndef _KEY_H
#define _KEY_H

//按键及其外部中断测试程序              修改日期：2025/5/28
//实现功能：轮询读取按键
//					外部中断读取按键
//By:TAO XIN YU (陶鑫宇)

#include "gd32e230.h"                   // Device header
#include "systick.h"
#include "LED.h"


//按键1 gpio时钟组
#define KEY1_RCU_GPIOX 		  RCU_GPIOA    
//按键1 gpio分组
#define KEY1_GPIOX			 		GPIOA
//按键1 gpio引脚
#define KEY1_PIN			 			GPIO_PIN_2
//获取按键1状态
#define KEY1_READ()       (gpio_input_bit_get(KEY1_GPIOX,KEY1_PIN) ? 1 : 0)
//按键1 中断函数
#define KEY1_EXTI_irqn 			EXTI2_3_IRQn
//按键1 中断优先级
#define KEY1_IRQ_priority  	0U
//按键1 中断源
#define KEY1_EXTI_LINEX			EXTI_2


//初始化KEY
//无参
//无返回值
void KEY_init(void);

//阻塞式获取按键（轮询）
//无参
//返回值：key 键码值 （范围0~255）
unsigned char KEY_read_value(void);

//初始化KEY_EXTI
//无参
//无返回值
void KEY_EXTI_init(void);


#endif
